Стратегія для SSH ключів
Вибір стратегії для SSH-ключів
-
Один ключ для всіх серверів
-
Переваги:
- Простота (не потрібно керувати кількома ключами).
- Легко додавати нові сервери (просто копіюєте той самий публічний ключ).
-
Недоліки:
- Якщо ключ буде скомпрометовано, зламані всі сервери.
- Немає ізоляції між серверами.
-
Переваги:
-
Окремий ключ для кожного сервера
-
Переваги:
- Безпека (компрометація одного ключа не впливає на інші сервери).
- Можливість відкликати доступ лише до певного сервера.
-
Недоліки:
- Складніше керувати (особливо якщо серверів багато).
-
Переваги:
Як створити ключ з іншою назвою (для окремих серверів)
-
Генерація ключа зі своєю назвою
Використовуйте параметр
-f
для вказання шляху до файлу:ssh-keygen -t ed25519 -f ~/.ssh/my_server_key -C "коментар"
-
Це створить:
- Приватний ключ:
~/.ssh/my_server_key
- Публічний ключ:
~/.ssh/my_server_key.pub
- Приватний ключ:
-
Копіювання ключа на сервер
Використовуйте
ssh-copy-id
з явним вказанням ключа:bash
ssh-copy-id -i ~/.ssh/my_server_key.pub username@server_ip
Або вручну (як у вашому прикладі):
cat ~/.ssh/my_server_key.pub | ssh username@server_ip "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys"
-
Підключення з вибором ключа
Додайте параметр
-i
до командиssh
:bash
ssh -i ~/.ssh/my_server_key username@server_ip
Як уникнути перезапису id_ed25519
-
SSH за замовчуванням використовує ключі зі стандартними іменами (
id_ed25519
,id_rsa
тощо). - Якщо ви створюєте ключ з іншою назвою (наприклад,
my_server_key
), вам завжди потрібно вказувати його явно черезi
.
Покращений підхід: конфіг SSH (~/.ssh/config
)
Щоб не вводити -i
щоразу, створіть/відредагуйте файл ~/.ssh/config
:
Host my-server-alias
HostName server_ip
User username
IdentityFile ~/.ssh/my_server_key
Тепер підключайтесь просто:
ssh my-server-alias
Висновок: що вибрати?
- Для персонального використання (наприклад, домашні сервери) – одного ключа достатньо.
-
Для продакшн-середовищ або критичних серверів – окремі ключі +
~/.ssh/config
для зручності. - Якщо ви хочете максимальної безпеки – ключі на рівні серверів/проєктів + регулярне обертання (заміна) ключів.
Важливо: Ніколи не використовуйте один ключ для серверів з різним рівнем конфіденційності (наприклад, тестовий і банківський сервер).
Category: Linux | Comments: 0